@rdfjs/parser-n3
N3 parser which implements the RDFJS Sink interface using the N3.js library.
Usage
The package exports the parser as a class, so an instance must be created before it can be used.
The .import
method, as defined in the RDFJS specification, must be called to do the actual parsing.
It expects a Turtle, N-Triples or N-Quads string stream.
The method will return a stream which emits the parsed quads.
It also emits prefix
events as defined in the RDFJS specification.
The constructor accepts an options
object with the following optional keys:
baseIRI
: Allows passing the base IRI manually to the N3.js
library.factory
: Use an alternative RDFJS data factory.
By default the reference implementation us used.
It's also possible to pass options as second argument to the .import
method.
The options from the constructor and the .import
method will be merged together.
Example
This example shows how to create a parser instance and how to feed it with a stream from a string.
The parsed quads and the prefixes are written to the console.
const ParserN3 = require('@rdfjs/parser-n3')
const Readable = require('stream').Readable
const parserN3 = new ParserN3()
const input = new Readable({
read: () => {
input.push(`
PREFIX s: <http://schema.org/>
[] a s:Person ;
s:jobTitle "Professor" ;
s:name "Jane Doe" ;
s:telephone "(425) 123-4567" ;
s:url <http://www.janedoe.com> .
`)
input.push(null)
}
})
const output = parserN3.import(input)
output.on('data', quad => {
console.log(`quad: ${quad.subject.value} - ${quad.predicate.value} - ${quad.object.value}`)
})
output.on('prefix', (prefix, ns) => {
console.log(`prefix: ${prefix} ${ns.value}`)
})